home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio
/
Ham Radio CD-ROM (Emerald Software) (1995).ISO
/
ant
/
antenna2
/
selfimp.bas
< prev
next >
Wrap
BASIC Source File
|
1986-09-18
|
2KB
|
69 lines
10 CLS:KEY OFF
15 KEY 1,"":KEY 10,""
20 T$="SELF IMPEDANCE OF DIPOLE OF ANY LENGTH AND RADIUS":LC=1:GOSUB 640
30 ' MAY 27, 86
40 ' AHMAD FAIZAL MOHD ZAIN
50 PRINT:PRINT:PRINT
60 '
70 PI=3.141592
80 GOTO 280 'MAIN PROG
90 '
100 ' SUBROUTINE TO GET SI(X) AND CI(X)
110 '
120 ' INPUT X
130 ' OUTPUT SI,CI,CIN
140 '
150 X1=X: X2=X*X: X3=X2*X: X4=X3*X: X5=X4*X: X6=X5*X: X7=X6*X
160 IF X>=1 THEN 210
170 SI=X-X3/8+X5/600-X7/35280!
180 IF X=0 THEN PRINT"CI(X) UNDEFINED FOR X=0 ":RETURN
190 CI=.5772157+LOG(X)-X2/4+X4/96-X6/4320
200 GOTO 250
210 FX=((X4+7.24116*X2+2.46394)/(X4+9.068579*X2+7.15743))/X
220 GX=((X4+7.54748*X2+1.56407)/(X4+12.72368*X2+15.72361))/X2
230 SI=PI/2-FX*COS(X)-GX*SIN(X)
240 CI=FX*SIN(X)-GX*COS(X)
250 CIN=LOG(X)+.5772157-CI
260 RETURN
270 '
280 CLS
290 INPUT "LENGTH OF DIPOLE IN TERMS OF LAMBDA ";H
300 INPUT "RADIUS OF DIPOLE IN TERMS OF LAMBDA ";A
305 CLS
307 LOCATE 25,1:PRINT" F1 = Change parameter F10 = QUIT"
308 LOCATE 1,1:PRINT" SELF IMPEDANCE OF ANY DIPOLE OF ANY LENGTH AND RADIUS"
310 LOCATE 8,1:PRINT USING "LENGTH OF DIPOLE = #.##";H
320 LOCATE 8,40:PRINT USING "RADIUS OF DIPOLE = #.########";A
330 TWOBH=4*PI*H:C2BH=COS(TWOBH):S2BH=SIN(TWOBH)
340 X=TWOBH:GOSUB 100
350 SI2BH=SI:CI2BH=CI:CIN2BH=CIN
360 FOURBH=8*PI*H:C4BH=COS(FOURBH):S4BH=SIN(FOURBH)
370 X=FOURBH:GOSUB 100
380 SI4BH=SI:CI4BH=CI:CIN4BH=CIN
390 AA=LOG(H/(2*PI*A*A))
400 BB=-.5772157+AA+2*CI2BH-CI4BH
410 CC=2*SI2BH-SI4BH
420 XIN=-30*(BB*S2BH-CC*C2BH-2*SI2BH)
430 RIN=30*((2+2*C2BH)*CIN2BH-C2BH*CIN4BH-2*S2BH*SI2BH+S2BH*SI4BH)
440 IF XIN<0 THEN SIGN$=" -j" ELSE SIGN$=" +j"
450 PRINT:PRINT
460 PRINT USING "SELF IMPEDANCE OF DIPOLE IS ###.###";RIN;:PRINT SIGN$;:PRINT USING "###.###";ABS(XIN)
470 A$=INKEY$
480 IF LEN(A$)<>2 THEN 470
490 ANS=ASC(MID$(A$,2,1))
500 IF ANS=59 THEN 280
510 IF ANS=68 THEN 580
520 IF H<=0 THEN H=.05
530 IF ANS=75 THEN A=A-.0000005
540 IF ANS=77 THEN A=A+.0000005
550 IF ANS=84 THEN 580
560 IF A<=0 THEN A=.0000005
570 GOTO 310
580 T$="DO YOU WANT TO RUN THIS PROGRAM AGAIN (Y/N)? ":LC=23:GOSUB 640
590 AN$=INKEY$
600 IF AN$="Y" OR AN$="y" THEN RUN
610 IF AN$="N" OR AN$="n" THEN END
620 GOTO 580
630 :
640 LOCATE LC,(80-LEN(T$))/2+1:PRINT T$:RETURN 'SUBROUTINE TO CENTRE TEXT